-
Notifications
You must be signed in to change notification settings - Fork 295
Distributed Tracing integration with SDK builds. #2741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Distributed Tracing integration with SDK builds. #2741
Conversation
32c2ac1
to
baccb1b
Compare
sdk/core/azure_core/src/http/policies/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some cosmetic comments, look great in general!
sdk/core/azure_core/src/http/policies/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
@heaths @lmolkova @analogrelay @RickWinter At this point, I think I'm done with this PR, let me know what you think about it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still working my way through most of azure_core_opentelemetry
but wrapping up my day and wanted to get some of the comments out there. Almost entirely style/idiom stuff, with a few other thoughts on the proc macro and attribute key storage. Looking good! I like the proc macros!
sdk/core/azure_core/src/http/policies/instrumentation/public_api_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/instrumentation/public_api_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/instrumentation/public_api_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/instrumentation/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/instrumentation/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
sdk/core/azure_core/src/http/policies/instrumentation/request_instrumentation.rs
Outdated
Show resolved
Hide resolved
Co-authored-by: Liudmila Molkova <limolkova@microsoft.com>
…://github.com/LarryOsterman/azure-sdk-for-rust into larryo/opentelemetry_prototype_implementation
…ve test reliability
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements distributed tracing integration with the Azure SDK for Rust builds, adding comprehensive telemetry support for HTTP operations and public APIs. The implementation includes two main instrumentation policies and integrates them into the core pipeline creation process.
Key Changes:
- Implemented
RequestInstrumentationPolicy
to add spans for HTTP operations with W3C trace context propagation - Implemented
PublicApiInstrumentationPolicy
to add spans for public API calls - Added comprehensive tracing attribute support with OpenTelemetry compatibility
- Integrated instrumentation policies into the azure_core pipeline with client options configuration
Reviewed Changes
Copilot reviewed 41 out of 42 changed files in this pull request and generated 5 comments.
Show a summary per file
File | Description |
---|---|
sdk/typespec/typespec_client_core/src/tracing/ | Core tracing trait definitions with updated APIs for span creation and attribute handling |
sdk/core/azure_core_opentelemetry/ | OpenTelemetry integration implementation with tracer provider and span management |
sdk/core/azure_core_macros/ | Procedural macros for automatic instrumentation of client structs and methods |
sdk/core/azure_core/src/http/policies/instrumentation/ | HTTP request instrumentation policy with telemetry attributes |
sdk/typespec/typespec_client_core/src/http/ | Pipeline and retry policy updates for instrumentation support |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Added distributed tracing policy and example service client integration.
PR Changes:
RequestInstrumentationPolicy
to add spans for HTTP operations.PublicApiInstrumentationPolicy
to add spans for public APIs.PublicApiInstrumentationInformation
which expresses information used to create Public API spans.RequestInstrumentationPolicy
andPublicApiInstrumentationPolicy
toazure_core
pipeline creation.azure_core::ClientOptions::deconstruct()
method to deconstruct to atypespec_client_core::ClientOptions
and aazure_core::CoreClientOptions
(which is crate-private).http::Method::as_str()
to return a string slice with the name of the HTTP method.Span::add_event
, removedAttributeValue::U64
and replaced it withAttributeValue::F64
),Bug fix: Propagate retry policy options from client options to retry policy.